package com.xique.park.bean.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.xique.common.core.annotation.Excel;

/**
 * 门禁用户信息对象 t_user
 *
 * @author xique
 * @date 2021-12-15
 */
@Data
public class User {

    private static final long serialVersionUID = 1L;

    /**
     * 自动增量
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 项目ID
     */
    @Excel(name = "项目ID")
    private Long parkId;

    /**
     * 人脸识别机用户唯一标识
     */
    @Excel(name = "人脸识别机用户唯一标识")
    private String customId;

    /**
     * 身份证号
     */
    @Excel(name = "身份证号")
    private String idCard;

    /**
     * 用户姓名
     */
    @Excel(name = "用户姓名")
    private String userName;

    /**
     * 0: 白名单 1: 黑名单
     */
    @Excel(name = "0: 白名单 1: 黑名单")
    private Integer personType;

    /**
     * 性别（0男 1女 2未知）
     */
    @Excel(name = "性别", readConverterExp = "0=男,1=女,2=未知")
    private String gender;

    /**
     * 密码
     */
    @Excel(name = "密码")
    private String password;

    /**
     * 电话
     */
    @Excel(name = "电话")
    private String phone;

    /**
     * 访客类型： 0:永久名单 1:临时名单 1(时间段有效) 2:临时名单 2(每天同一时间段有效) 3 临时名单 3(次数有效)
     */
    @Excel(name = "访客类型： 0:永久名单 1:临时名单 1(时间段有效) 2:临时名单 2(每天同一时间段有效) 3 临时名单 3(次数有效)")
    private String visitorType;

    /**
     * 地址
     */
    @Excel(name = "地址")
    private String address;

    /**
     * 人脸URL
     */
    @Excel(name = "人脸URL")
    private String faceUrl;

    /**
     * 人脸key
     */
    @Excel(name = "人脸key")
    private String faceKey;

    /**
     * 状态 0禁用, 1启用
     */
    @Excel(name = "状态 0禁用, 1启用")
    private String status;

    /**
     * 用户信息过期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "用户信息过期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date exTime;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private Long createUser;

    /**
     * 更新人
     */
    @Excel(name = "更新人")
    private Long updateUser;

    /**
     * 删除标志 0：未删除 1：已删除
     */
    private Integer delFlag;

    /**
     * 海康注册标志 0:未注册 1：已注册
     */
    @Excel(name = "海康注册标志 0:未注册 1：已注册")
    private Integer hkRegistFlag;

    /**
     * 上级id
     */
    @Excel(name = "上级id")
    private Long parentId;

    /**
     * 类型(0业主 1业主家庭成员)
     */
    @Excel(name = "类型(0业主 1业主家庭成员)")
    private String type;

    /**
     * 允许邀请的访客车辆类型：1.不允许，2收费访客，3免费访客，用,分隔
     */
    @Excel(name = "允许邀请的访客车辆类型：1.不允许，2收费访客，3免费访客，用,分隔")
    private String visitorCarType;

    /**
     * 微信的openId
     */
    @Excel(name = "微信的openId")
    private String wechatOpenid;

    /**
     * 身份类型(0业主 1租客 2家属)
     */
    @Excel(name = "身份类型(0业主 1租客 2家属)")
    private String identityType;

    /**
     * 入住日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入住日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkInDate;

    /**
     * 居住方式（0单身居住 1合伙居住 2家庭居住 3集体居住 4其他）
     */
    @Excel(name = "居住方式", readConverterExp = "0=单身居住,1=合伙居住,2=家庭居住,3=集体居住,4=其他")
    private String liveWay;

    /**
     * 出生日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /**
     * 房屋编号
     */
    @Excel(name = "房屋编号")
    private Long houseId;

    /**
     * 房屋名称
     */
    @Excel(name = "房屋名称")
    private String houseName;

    /**
     * 楼栋编号
     */
    @Excel(name = "楼栋编号")
    private Long buildingId;

    /**
     * 楼栋名称
     */
    @Excel(name = "楼栋名称")
    private String buildingName;

    /**
     * 到期日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到期日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dueDate;

    /**
     * 与业主关系
     */
    @Excel(name = "与业主关系")
    private String relation;

    /**
     * 企业名称
     */
    @Excel(name = "企业名称")
    private String companyName;

    /**
     * 企业地址
     */
    @Excel(name = "企业地址")
    private String companyAddress;

    /**
     * 经营范围
     */
    @Excel(name = "经营范围")
    private String businessScope;

    /**
     * 税号
     */
    @Excel(name = "税号")
    private String taxCode;

    /**
     * 基础用户id
     */
    @Excel(name = "基础用户id")
    private Long baseUserId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 座机
     */
    private String telephone;
}
